1. Technical Field
The invention is related to receiver-driven peer-to-peer (P2P) media streaming for loosely coupled P2P networks, and in particular, to a system and method for streaming media from a plurality of peers to a client under the real-time coordination and control of the client without the need to provide peer-to-peer collaboration.
2. Related Art
Recent market research has indicated that over half of the Internet users in the United States have accessed some form of streaming media in 2004. Access to streaming music is a very popular activity, while the popularity of streaming video is growing rapidly.
Unfortunately, unlike typical web pages, a streaming media file is typically extremely large in size. For example, a 3 minute movie trailer encoded at 2 megabits per second (Mbps) can result in a 45 megabyte (MB) media file depending upon the codec used. Another problem that must be addressed by streaming media is the critical timing of packet delivery. Consequently, the large size of the streaming media files and the packet delivery timing requirements cause typical streaming media servers to be relatively expensive to set up and run. For example, one current estimate puts the going rate for streaming media at $10 per 1 GB of serving traffic. Using the example of a 45 MB file size, this can result in a bandwidth cost of $0.45 per movie trailer distributed. Clearly such costs can escalate rapidly as the amount of media streaming increases.
One solution to the relatively high cost of media streaming is to use a “peer-to-peer” (P2P) network to provide the media streaming to individual clients. In general, the basic idea of P2P networks is to allow each peer node to assist the media server in distributing the streaming media. The success of P2P networks for streaming media has resulted in a large number of conventional approaches to implementing P2P networks.
For example, conventional P2P schemes referred to as “end system multicast” and “PeerCast” use application-level multicast (ALM) for media streaming. In particular, with both ESM and PeerCast, the peer nodes are self organized into an overlay tree over an existing IP network. The streaming data is then distributed along the overlay tree. The cost of providing bandwidth is then shared amongst the peer nodes, thereby reducing the bandwidth burden (and thus dollar cost) of running the media server. However, with both ESM and PeerCast, the leaf nodes of the distribution tree only receive the streaming media and do not contribute to content distribution.
Two other conventional schemes, “CoopNet” and “SplitStream” address the content distribution limitation of schemes such as ESM and PeerCast by using multiple distribution trees that span the source and the peer nodes. Each tree in CoopNet and SplitStream can then transmit a separate piece of streaming media. As a result, all peer nodes can be involved in content distribution.
Additional examples of conventional P2P media streaming solutions include a streaming scheme referred to as “OStream.” OStream uses a “cache-and-relay” approach such that peer nodes can serve clients with previously distributed media from its cache. Another conventional system, “GnuStream” provides a receiver driven P2P media streaming system built on top of the well known “Gnutella” system. Yet another conventional scheme, referred to as “CollectCast” actively looks for serving peers that are most likely to achieve a best streaming quality, while dynamically adapting to network fluctuations and peer failures.
Another type of conventional scheme provides a type of distributed file sharing where pieces of a file are widely distributed across a number of peers. Then whenever a client requests a download of that file, that request is serviced from a plurality of peers rather then directly from the server. For example, one such scheme, referred to as “Swarmcast,” spreads the load placed on a web site offering popular downloadable content by breaking files into much smaller pieces. Once a user has installed the Swarmcast client program, their computers automatically cooperate with other users' computers by passing around (i.e., serving) pieces of data that they have already downloaded, thereby reducing the overall serving load on the central server. A similar scheme, referred to as “BitTorrent,” works along very similar principles. In particular, when under low load, a web site which serves large files using the BitTorrent scheme will behave much like a typical http server since it performs most of the serving itself. However, when the server load reaches some relatively high level, BitTorrent will shift to a state where most of the upload burden is borne by the downloading clients themselves for servicing other downloading clients.
Unfortunately, while schemes such as Swarmcast and BitTorrent are very useful for distributing pieces of files for dramatically increasing server capacity as a function of the P2P network size, these systems are not adapted for efficiently streaming media. In particular, schemes such as Swarmcast and BitTorrent do not care about the order or timing of the delivery of data packets constituting the file or files being downloaded. The files are simply broadcast in pieces from various peers to a client, and then simply locally reassembled in the correct order to reconstruct the original file on the client computer. However, in the case of streaming media, the timing and order of data packets must be carefully considered and controlled so as to provide for efficient streaming of that media.
Therefore, what is needed is a system and method for receiver-driven control of media streaming from a collection of loosely coupled peers to a client. Such a system should not require communication or collaboration between peers. Further, such as system and method should minimize computation demands placed onto peers by requiring the client to perform the bulk of any necessary computational operations.